<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //Array.prototype.map
    //不能直接使用 Array.map
    //实例对象.map  arr  = [] arr.map [].map [1,2,3].map()
    /*
     function map(callback) {
     [native code]
     return 结果
     }
     */

//    var arr  = [1,3,5];
//    function fun(v){
//        return v*4;
//    }
//    function fun2(v){
//        return v*2;
//    }
//    var arr2 = arr.map(fun);
//    console.log(arr2);


    Array.prototype.myMap = function(callback){
        var arr = this.valueOf();//实例对象的原始值，数组
        var newArr = [];
        for(var i=0;i<arr.length;i++){
//            var tmp = arr[i] * 4;//有特殊需求，新数组与原数组有多个不同对应的规律
            var tmp = callback(arr[i]);//丢出来一个万能方法，让调用这个函数的人去决定规律
            newArr.push(tmp) ;
        }

//        console.log(arr);
        return newArr;
    }

    var arr  = [1,3,5];
    var arr2 = arr.myMap(function(v){
        return v*2;
    })
    console.log(arr2);


    var arr3 = arr.myMap(function(v){
        return v*3;
    })
    console.log(arr3);
    var arr4 = arr.myMap(function(v){
        return v*4;
    })
    console.log(arr4);
</script>
</body>
</html>